package com.rawchen.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.rawchen.model.vo.BlogIdAndTitle;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 博客评论
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Comment {
	@TableId(type = IdType.AUTO)
	private Long id;
	/** 昵称 */
	private String nickname;
	/** 邮箱 */
	private String email;
	/** 评论内容 */
	private String content;
	/** 头像(图片路径) */
	private String avatar;
	/** 评论时间 */
	private Date createTime;
	/** 评论者ip地址 */
	private String ip;
	/** 公开或回收站 */
	@TableField("is_published")
	private Boolean published;
	/** 博主回复 */
	@TableField("is_admin_comment")
	private Boolean adminComment;
	/** 0普通文章，1关于我页面 */
	private Integer page;
	/** 接收邮件提醒 */
	@TableField("is_notice")
	private Boolean notice;
	/** 所属的文章 */
	@TableField(exist = false)
	private BlogIdAndTitle blog;
	/** 父评论id */
	private Long parentCommentId;
	/** 个人网站 */
	private String website;
	/** 如果评论昵称为QQ号，则将昵称和头像置为QQ昵称和QQ头像，并将此字段置为QQ号备份 */
	private String qq;

	/** 回复该评论的评论 */
	@TableField(exist = false)
	private List<Comment> replyComments = new ArrayList<>();
}
